package com.event.management.frontend.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 用户详细信息DTO
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "用户详细信息")
public class UserDetailDTO {
    
    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID", example = "1")
    private Integer id;
    
    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名", example = "user123")
    private String username;
    
    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名", example = "张三")
    private String realName;
    
    /**
     * 性别
     */
    @ApiModelProperty(value = "性别", example = "male")
    private String gender;
    
    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱", example = "example@email.com")
    private String email;
    
    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号", example = "13800138000")
    private String phone;
    
    /**
     * 兴趣爱好
     */
    @ApiModelProperty(value = "兴趣爱好", example = "音乐、讲座")
    private String interests;
    
    /**
     * 生日
     */
    @ApiModelProperty(value = "生日", example = "1990-01-01")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;
    
    /**
     * 个人简介
     */
    @ApiModelProperty(value = "个人简介", example = "这是我的个人简介")
    private String bio;
    
    /**
     * 头像URL
     */
    @ApiModelProperty(value = "头像URL", example = "https://example.com/avatar.jpg")
    private String avatar;
    
    /**
     * 地址
     */
    @ApiModelProperty(value = "地址", example = "北京市海淀区")
    private String address;
    
    /**
     * 职业
     */
    @ApiModelProperty(value = "职业", example = "工程师")
    private String profession;
    
    /**
     * 用户角色
     */
    @ApiModelProperty(value = "用户角色", example = "user")
    private String role;
    
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", example = "2023-01-01 12:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdAt;
    
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", example = "2023-01-01 12:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updatedAt;
    
    /**
     * 用户订单总数
     */
    @ApiModelProperty(value = "用户订单总数", example = "5")
    private Long ordersCount;
    
    /**
     * 用户电子票总数
     */
    @ApiModelProperty(value = "用户电子票总数", example = "10")
    private Long ticketsCount;
} 